/*
 * main.c
 *
 *  Created on: 19/03/2011
 *      Author: thais
 */

#include <stdio.h>
#include <string.h>

#include "pilha.h"

int main(){
	Pilha pilha;
	char entrada[MAX], ant;
	int string_size, i=0;

	printf("Entre sua sentença:\n");
	scanf("%s", entrada);

	string_size=strlen(entrada);
//	printf("%d", string_size);

	limpa(&pilha);

	for(i=0; i<string_size; i++){
		//recebe fechamento com pilha vazia
		if (vazia(&pilha) == 1 && (entrada[0] == ')' || entrada[0] == ']' || entrada[0] == '}')){
			printf("Balanceamento INcorreto.");
			return 0;
		}
		//empilha aberturas..
		if(entrada[i] == '(' || entrada[i] == '[' || entrada[i] == '{')
			empilha(entrada[i], &pilha);
		else {
			//checa fecha parenteses
			if(entrada[i] == ')'){
				desempilha(&ant, &pilha);
				if (ant != '('){
					printf("Balanceamento INcorreto.");
					return 0;
				}
			}
			//checa fecha colchetes
			if(entrada[i] == ']'){
				desempilha(&ant, &pilha);
					if (ant != '['){
						printf("Balanceamento INcorreto.");
						return 0;
					}
			}
			//checa fecha chaves
			if(entrada[i] == '}'){
				desempilha(&ant, &pilha);
					if (ant != '{'){
						printf("Balanceamento INcorreto.");
						return 0;
					}
			}
		}
	}

	printf("Balanceamento correto.");

	return 0;

}
